package junior.db.dao.ext;

import java.util.List;
import java.util.Map;

public interface IExtensible {
    /**
     * 处理扩展
     * @param ext
     * @param fields 扩展字段
     * @return 返回可扩展的Param或返回null表示没有可处理的扩展
     */
    IExtensible doExt(Map<String, Object> ext, List<String> fields);
    
    /**
     * <h3>处理扩展字段</h3>
     * <p>如果实体对象为IEntityExt的子类，则会调用doExt(entity.getExt(), fields)</p>
     * @param fields 扩展字段
     * @return 返回可扩展的Param或返回null表示没有可处理的扩展
     */
    IExtensible doEntityExt(List<String> fields);
}
